In the field of data handling, clients such as different service providers, companies, enterprises, organizations and authorities have a need for hardware and software resources in order to create infrastructure for various internet or web applications. In this field, the term “resources” is often used for short to represent any hardware and software that can be used for computer executed operations when providing such applications including data processing, calculations, compilations and data storing.
In traditional solutions, the clients themselves own and maintain all the resources they need which can be quite costly and time-consuming, though, also requiring considerable knowledge to acquire and install such resources which further may quickly become out-of-date due to the current rapid development of new techniques and products. Another problem is that a client may need a great amount of resources for a very limited period, while very little resources are used otherwise. The client thus has to make investments in resources enough to cope with such temporary peak usage.
In recent years, the concept of cloud computing has emerged to solve the above problems for clients who instead can utilize pooled resources maintained by cloud providers in large data centers with a huge range of computers and data storages. Effectively, all the needed resources and capacity are available from the cloud provider and the clients do not have to make their own investments in costly resources. A client is thus able to contact a cloud provider to create a so-called “Virtual Machine” (VM) comprising resources allocated in the cloud as needed and required by the client who can then use the VM basically in the same way as if corresponding resources were owned and hosted by the client himself. The benefits for clients with cloud computing thus include reduced costs for investments and maintenance, and greater flexibility and scalability of the resources as needed. There are also solutions with distributed cloud where the resources are hired from multiple private nodes and devices, thus offloading the central data centers.
For services involving delivery of content to consumers, e.g. audio/video media, images, web pages and notifications, the amount of data to deliver may be substantial and it has become generally desirable to reduce the amount of data traffic and the latency in data distribution networks used for transporting such data to the consumers when delivering requested content. Therefore, solutions have been developed where the content is delivered from a plurality of nodes located more close to the receiving consumer, instead of all the way from a single centralized service node, the nodes thus forming a distributed content delivery network. This arrangement can be regarded as a distributed cloud of content delivering resources. The delivery path between content source and consumer can thus be shortened and load is distributed over several nodes which may work as caches for temporary storage of highly demanded content. This may also reduce the latency, i.e. waiting time, in the network. In this way, content can be delivered to consumers faster and with increased efficiency.
However, the above-described de-centralized solution for content delivery is somewhat static and a considerable amount of manual work is required to establish and configure suitable nodes for delivering a certain content. For example, it may be necessary to agree with node owners and operators where to arrange the delivering nodes, and to configure them for achieving the needed networking functionality. Moreover, if the demands for content change, the selection and configuration of the delivering nodes must be adapted accordingly, requiring further manual work, to preserve the positive effects of efficient content delivery, low traffic load and reduced latency mentioned above. Unless such manual work is spent on selecting and configuring suitable delivering nodes according to changing demands for content, a setup of distributed delivering nodes will soon enough become out of date and lose its efficiency. As a result, more resources and bandwidth will be utilized in the network than necessary.